#include <stdio.h>
#include <stdlib.h>
#include "Quete.h"
#include <time.h>

int get_nombre_quete(Quete * q)
{
    if(q==NULL)
    {
        return 0;
    }

    else
    {
        return (1 + get_nombre_quete(q->suivante));
    }
}



Quete * get_quete(Quete* q,int x)
{
    if(x==0)
    {
        return q;
    }

    else
    {
        return (get_quete(q->suivante,x-1));
    }
}


void ajouter_quete(Quete * prem, Quete * q)
{
    Quete * temp;

    if(prem==NULL)
    {
        prem=q;
    }

    else
    {
        temp=prem;

        while(temp->suivante!=NULL)
        {
            temp=temp->suivante;
        }

        temp->suivante=q;
        q->precedente=temp;
    }
}


Quete * creer_quete(int type, int variable, int compte, int recompense, int experience, Objet * tresor)
{
    Quete * q=(Quete*)malloc(sizeof(Quete));
    q->type=type;
    q->variable=variable;
    q->compte=compte;
    q->recompense=recompense;
    q->experience=experience;
    q->tresor=tresor;
    q->precedente=NULL;
    q->suivante=NULL;

    return q;
}


Quete * generer_quete_aleatoire()
{
    Quete * q;
    srand(time(NULL));

    int type;
    int variable;
    int compte;
    int recompense;
    int experience;

    type=rand()%5;
    variable=rand()%10;
    compte=(rand()%3)+1; /* Accomplir un objetif 0 fois ne fait pas beaucoup d'interret ^^ */
    recompense=10+rand()%50;
    experience=rand()%20;

    q=creer_quete(type,variable,compte,recompense,experience,NULL);

    return q;
}


void test_module_quete()
{
    Quete * q;
    q=generer_quete_aleatoire();
    afficher_quete(q);
}
